/**
 * 处理合约错误
 * @param {Object} error 错误对象
 * @returns {String} 错误信息
 */
export function handleContractError(error) {
    if (!error) return '未知错误';
    
    // 处理HTTP错误
    if (error.status === 404) {
        return 'API接口不存在，请检查接口地址';
    }
    
    // 处理合约错误
    if (error.status === '0x16') {
        return '合约执行失败：权限不足或参数错误';
    }
    
    // 处理其他错误
    if (error.response && error.response.data) {
        return error.response.data.message || error.response.data;
    }
    
    return error.message || '未知错误';
}

/**
 * 处理温度告警事件数据
 * @param {Object} event 事件数据
 * @returns {Object} 处理后的事件数据
 */
export function handleTemperatureAlertEvent(event) {
    if (!event) {
        throw new Error('无效的温度告警事件数据');
    }
    
    // 处理不同格式的事件数据
    if (event.returnValues) {
        // Web3事件格式
        return {
            transportId: event.returnValues.transportId || '',
            temperature: parseFloat(event.returnValues.temperature) || 0,
            alertType: parseInt(event.returnValues.alertType) || 0
        };
    } else if (event.result) {
        // FISCO BCOS事件格式
        return {
            transportId: event.result.transportId || '',
            temperature: parseFloat(event.result.temperature) || 0,
            alertType: parseInt(event.result.alertType) || 0
        };
    }
    
    // 默认格式
    return {
        transportId: event.transportId || '',
        temperature: typeof event.temperature === 'number' ? event.temperature : parseFloat(event.temperature) || 0,
        alertType: typeof event.alertType === 'number' ? event.alertType : parseInt(event.alertType) || 0
    };
} 